package com.malou.client.ventas.ingresostock;

import java.util.List;

import com.extjs.gxt.ui.client.data.BaseListLoader;
import com.extjs.gxt.ui.client.data.BeanModel;
import com.extjs.gxt.ui.client.data.BeanModelReader;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.ListLoader;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.RpcProxy;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.malou.client.MalouConstants;
import com.malou.client.util.MensajeData;
import com.malou.client.ventas.proveedor.Proveedor;

public class IngresoStocks {
	private static IngresoStockServiceAsync ngs = GWT.create(IngresoStockService.class);
	private static MalouConstants constants = GWT.create(MalouConstants.class);	
	public static IngresoStockDialog ingresoStockDialog;
	
	public static ListStore<BeanModel> storeProveedor;
	public static ListLoader<ListLoadResult<ModelData>> loaderProveedor;
	
	public static void save(IngresoStock ins) {
		
		ngs.save(ins, new AsyncCallback<MensajeData>() {

			@Override
			public void onFailure(Throwable caught) {				
				MessageBox.alert(constants.sistemaMarcocruzado(), constants.errorConexion(), null);				
			}

			@Override
			public void onSuccess(MensajeData data) {
				if (data.guardado) {
					ingresoStockDialog.hide();					
					//ModeloPrendas.loaderPrenda.load(0, Utilities.itemsPerPage);
					
				}
				 else {
					 ingresoStockDialog.status.hide();
					 ingresoStockDialog.getButtonBar().enable();
					 
					 String msg = constants.stockPrendaNoGuardado();
					 MessageBox.alert(constants.sistemaMarcocruzado(), msg, null);
				}						
			}
			
		});
	}
	
	public static void getComboProveedores(){
		RpcProxy<List<Proveedor>> proxy = new RpcProxy<List<Proveedor>>() {

			@Override
			protected void load(Object loadConfig,AsyncCallback<List<Proveedor>> callback) {				
				ngs.getProveedor(callback);
			}		      
			
	    };
	    
	    loaderProveedor = new BaseListLoader<ListLoadResult<ModelData>>(proxy, new BeanModelReader());
	    
	    storeProveedor = new ListStore<BeanModel>(loaderProveedor);
	}
}
